package net.csdn.business.common.annotation;

import net.csdn.business.common.enums.ProjectEnum;

import java.lang.annotation.*;

/**
 * 项目角色验证
 *
 * @author wanghang
 * @version 1.0
 * @date 2022/11/7 14:36
 */
@Documented
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ProjectRoleCheck {

    /**
     * 项目ID
     *
     * @return
     */
    String projectId() default "";

    /**
     * 项目角色
     *
     * @return
     */
    ProjectEnum.AccessLevelEnum role() default ProjectEnum.AccessLevelEnum.MANAGER;

    /**
     * 是否允许项目创建者操作
     *
     * @return Boolean
     */
    boolean allowCreator() default false;

    /**
     * 是否检测公开项目权限
     *
     * @return Boolean
     */
    boolean checkPublicProject() default true;

}